Some fixes to IRET hypercall and failsafe callback handlers:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 29 Mar 2006 11:02:45 +0000 (12:02 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 29 Mar 2006 11:02:45 +0000 (12:02 +0100)
commit111ce84369db4f646df18d79f1bc8d9960323033
treefa68f1650bb865c4c7609419f9c01a4153f0b0c1
parentf73e4555d65cfa4e99186593593f104333109a7f
Some fixes to IRET hypercall and failsafe callback handlers:
 1. IRET hypercall must restore the event callback mask. This
    was missing on x86/64, and both subarchitectures now restore
    from EFLAGS.IF.
 2. Failsafe callbacks are fixed to detect whether fault is due to
    bad segment or due to IRET. In the latter case we now
    immediatiately kill the process. This avoids infinite looping
    between IRET hypercall and failsafe callback handler in the guest.

Signed-off-by: Keir Fraser <keir@xensource.com>
linux-2.6-xen-sparse/arch/i386/kernel/entry-xen.S
linux-2.6-xen-sparse/arch/x86_64/kernel/entry-xen.S
linux-2.6-xen-sparse/arch/x86_64/kernel/xen_entry.S
xen/arch/x86/x86_32/asm-offsets.c
xen/arch/x86/x86_32/traps.c
xen/arch/x86/x86_64/asm-offsets.c
xen/arch/x86/x86_64/traps.c